SVGATEXTCALC

Section: User Contributed Perl Documentation (1)
Updated: perl
Index Return to Main Contents
 

NAME

SVGATextCalc - SVGATextMode mode calculator  

SYNOPSIS

SVGATextCalc MODE [--font=fontsize] [--trick9] [--verbose] [--vsf=vertical scanning frequency] [--dot=Dot clockfrequency (Mhz)] [--hmargin=horizontal margin factor] [--vmargin=vertical margin factor]  

DESCRIPTION

SVGATextCalc takes command line arguments and generates ``Modelines'' suitable for SVGATextMode. User supplied arguments are in high-level, understandable formats, like screen width, height, font size, etc. The program will take this data and spit out the paraphernalia necessary to (hopefully) program the VGA registers (this is a task for SVGATextMode(1)).

SVGATextCalc will do its best to make a video mode matching or as close as possible to the video mode requested by the user. Hardware constraints (for now, HorizSync and DacSpeed only) will be read from the SVGATextMode configuration file /etc/TextConfig.

SVGATextCalc will do a purely numerical calculation of the horizontal and vertical VGA parameters and frequencies first. Based on these results, obvious checks are made (horizontal frequency, dot clock, etc) to see if they fall within a range compatible with your hardware. SVGATextCalc will try really hard to make the best video mode as possible and has some limited intelligence built in (for instance, it will manipulate the dot clock frequency if the resulting horizontal frequency falls beyond your monitor's capability).

Advanced users can control some subtle aspects of the calculations, such as the Dot clock frequency, vertical scanning frequency and some other interesting parameters.  

OPTIONS


MODE
The desired mode. The format is CxR, where C is the number of desired columns and R is the number of rows.
--font=fontsize
Set the font size to be used. VGA hardware fonts are in the form WxH, where W is Width and H is Height (both in pixels). The default font is 8x16 (used in the 80x25 mode). Some other common fonts are 8x14, 8x8, etc. See the command line option --trick9 for a discussion about 9 pixel fonts.
--trick9
The VGA hardware has a ``trick'' that allows 9 pixel wide fonts. In fact, they are the very same 8 point fonts with a space added. This mode has the advantage of not being so ``cluttered'' on the screen. If you want this mode, specify your normal 8 width fonts and add the --trick9 command line option. You must choose an 8 pixel font as you would normally, or this option will be silently ignored.
--verbose
Displays some info to stderr. Nothing else. :)
--vsf=Vertical scanning frequency (in Hz)
Set the VSF, also known as vertical refresh rate. The more your monitor can handle, the better for your eyes. Reduced rates tend to produce flicker. The default is 60Hz.
--dot=Dotclock frequency (in MHz)
Use this to force the program to calculate everything based on the given Dotclock frequency. Usually, it will be derived from other parameters and readjusted if the horizontal scanning frequency falls off limits. If you set the frequency with this option, SVGATextCalc will not attempt to change it (but you have greater chances of ending with parameters outside the limits your monitor can handle).
--hmargin and --vmargin
These options control internal aspects of the program. If you have the guts to change them, I suppose you have the guts to take a look at the source code and discover what you're doing. :)
 

ERRORS

The program will make some basic checks against the generated data. Basically, it will try to avoid overloading your hardware but, of course, computers do what you tell them to do, not what you want them to do.  

EXAMPLES


SVGATextCalc 90x30
I love this one. Fits nicely on my 14'' monitor. :)
SVGATextCalc 90x30 --trick9
Same as above, but (IMO) much better. Fonts don't ``stick'' together so much.
SVGATextCalc 100x37 --font 8x14 --vsf=66
100 by 37 characters, using an 8x14 font at 66Hz vertical frequency scan. If you are out of luck (like me) and have a cheap 14'' monitor, you'll notice that the resulting VSF is at 63Hz, not 66Hz as requested. In my case, the monitor can't handle anything above 35.5Khz (Horizontal scan), so the program dropped the dotclock frequency a little, trying to keep the resolution. The result was degraded vertical refresh.
SVGATextCalc 100x37 --font 8x14 --vsf=66 --dot=38
Same as above, but forcing the dot clock to 38 MHz. Notice it now sticks to 66 Hz refresh rates with a 36.76KHz horizontal scan rate. That's why it dropped to 63Hz in the previous example (in my case).
 

SEE ALSO

SVGATextMode(1)  

WARNINGS

Messing with the VGA registers may damage your hardware. The author (Marco Paganini, paganini@ism.com.br) takes NO RESPONSIBILITY for anything caused by the use of this program. Every effort has been made to prevent very stupid mistakes, but always remember that computers are stupid things and there are many ways to fool a program.

Little story:

Some years ago I was sitting on my office desk, bored as always... All of a sudden, I remembered a very old monitor we had in spare. The tube was tainted, the case broken and the circuitry occasionally failed. The repair would cost more than the monitor itself... I thought then: ``Hey, let's see if this thing can really be burned via software''. I grabbed a small DOS program that allows you to change the VGA registers and set the frequencies to absurd values. All you could see was a vertical line in the middle of the screen and a very high pitched noise coming from the monitor. The noise was loud, but since the intent was to try to burn the monitor, the louder, the better.

I left it at this state for over 24 hours. Nothing happened. I fiddled even more with the registers, producing even more obscure results. Nothing happened.

From that day on, I decided that it's not so easy to burn a monitor via software. But caution is recommended. The monitor in question was a Low-end Samsung SyncMaster 3, 35.5Khz/90Hz. I believe that the bigger monitors may be more sensible to this kind of attack, so watch carefully what you do.  

BUGS


*
Not exactly a bug, but there's 90% of a chance that you will have to use vgaset(1) to tune your video mode. This happens whenever you generate a new video mode, since it's almost impossible to predict your monitor timings exactly.
*
No check is made for the vertical frequency
*
Currently, no individual horizontal frequencies are allowed. It means that if you use HorizSync A,B,C,D-E,F,G it will only consider the A and F frequencies as the lower and upper bounds, respectively.
*
No space is allowed between the values in the HorizSync line.
 

AUTHOR

Marco Paganini paganini@ism.com.br http://www.ism.com.br/~paganini

If you use this program and find it of any use, please send me your comments and/or suggestions.


 

Index

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
ERRORS
EXAMPLES
SEE ALSO
WARNINGS
BUGS
AUTHOR

This document was created by man2html, using the manual pages.
Time: 15:53:31 GMT, November 05, 2024